home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / benchmarks / fork / RCS / fork.c,v < prev   
Encoding:
Text File  |  1992-04-10  |  1.8 KB  |  126 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     92.04.10.15.46.06;  author kupfer;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     92.04.07.12.22.39;  author kupfer;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     92.04.07.12.18.39;  author kupfer;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @Benchmark to see how long fork() takes.
  27. @
  28.  
  29.  
  30. 1.3
  31. log
  32. @Use "%03d" instead of "%-03d".
  33. @
  34. text
  35. @/* $Header: /sprite/src/benchmarks/fork/RCS/fork.c,v 1.2 92/04/07 12:22:39 kupfer Exp Locker: kupfer $ */
  36.  
  37. #include <stdio.h>
  38. #include <sys/types.h>
  39. #include <sys/file.h>
  40. #include <sys/time.h>
  41. #ifdef sprite
  42. #include "proc.h"
  43. #endif
  44.  
  45.  
  46. main(argc, argv)
  47.     int argc;
  48.     char *argv[];
  49. {
  50.     register     int     i;
  51.     struct timeval startTime, endTime;
  52.     int        pid;
  53.     int        numForks = 1000; /* number of times to fork */
  54.  
  55.     if (argc > 1) {
  56.     numForks = atoi(argv[1]);
  57.     }
  58.     gettimeofday(&startTime,0);
  59.     for (i = 0; i < numForks; i++) { 
  60.     pid = fork();
  61.     if (pid == 0) {
  62.         /*
  63.          * child.
  64.          */
  65.         _exit(0);
  66.     } 
  67.     /*
  68.      * Parent 
  69.      */
  70.     wait(0);
  71.     }
  72.     gettimeofday(&endTime,0);
  73.     fixtime(&startTime,&endTime);
  74.     printf("fork test %d forks time %4d.%03d\n", numForks, 
  75.     endTime.tv_sec, endTime.tv_usec/1000);
  76. }
  77.  
  78. fixtime(s, e)
  79.         struct  timeval *s, *e;
  80. {
  81.  
  82.         e->tv_sec -= s->tv_sec;
  83.         e->tv_usec -= s->tv_usec;
  84.         if (e->tv_usec < 0) {
  85.                 e->tv_sec--; e->tv_usec += 1000000;
  86.         }
  87. }
  88. @
  89.  
  90.  
  91. 1.2
  92. log
  93. @Let the user specify the number of repetitions.  Lint.
  94. @
  95. text
  96. @d1 1
  97. a1 1
  98. /* $Header$ */
  99. d40 1
  100. a40 1
  101.     printf("fork test %d forks time %4d.%-03d\n", numForks, 
  102. @
  103.  
  104.  
  105. 1.1
  106. log
  107. @Initial revision
  108. @
  109. text
  110. @d1 2
  111. a16 2
  112.     char    fileName[128];
  113.     int        numReps, size;
  114. d19 1
  115. d21 3
  116. a23 1
  117.  
  118. d25 1
  119. a25 1
  120.     for (i = 0; i < 1000; i++) { 
  121. d40 1
  122. a40 1
  123.     printf("fork test %d forks time %4d.%-03d\n", 1000, 
  124. d43 1
  125. @
  126.